perm filename WEBALS.TEX[WEB,ALS]1 blob
sn#642833 filedate 1982-02-25 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00003 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 \input basic
C00004 00003 \magnify{1200}
C00010 ENDMK
C⊗;
\input basic
\font D=cmr7 at 14pt % for title only
\font E=cmtt at 15pt % likewise
\font L=cmsa10
\font t=cmtt \def\tt{\:t} % typewriter text
\font m=cmsc10 \def\sc{\:m} % small caps
\font b=cmr9 \def\mc{\:b} % medium caps for names like PASCAL
\font C←cmss8
\font P←cmsss8
\def\.#1{\hbox{\tt#1}}
\def\_{\hskip.06em\vbox{\hrule width.3em}} % underline in identifiers
\def\\#1{\hbox{\it#1\/\hskip.05em}} % italic type for identifiers
\def\{\hbox{\bf#1}} % boldface type for reserved words
\chcode'27=13 \def↔{\ifmmode{\mathrel{\char'444}}\else{\penalty999\ } }
% make ↔ tie two words together except in math mode
\def\TEX{T\hbox{\hskip-.1667em\lower.424ex\hbox{E}\hskip-.125em X}}
\def\PASCAL{{\mc PASCAL}}
\def\pb{\.{|...|}}
\def\section #1.{\penalty-50\vskip 12pt plus 3pt minus 3pt
\noindent{\bf #1.}\quad\!}
\def\yskip{\vskip 3pt plus 3pt minus 1pt}
\def\sp{\char'40 } % visible blank space in typewriter font
\def\bk{\char'134 } % backslash character in typewriter font
\def\lb{\char'173 } % left brace in typewriter font
\def\rb{\char'175 } % right brace in typewriter font
\def\ul{\char'32 } % underline character in typewriter font
\def\hang{\hangindent 4em\ \unskip}
\magnify{1200}
\ctrline{The New \.{WEB} Programming System}
\vskip 20 pt
\ \.{WEB} is a new computer-programming system created by Donald E. Knuth that
combines the programming facility of \PASCAL\ with the documentation
capability of \TEX.
The \.{WEB} system allows one to prepare a single document that contains all
the information that is needed both to generate the desired \PASCAL\ program
and to produce a well-formatted document describing the program in as much
detail as the writer may desire. This greatly simplifies the task of
maintaining compatability between the program and its documentation. In
addition, \.{WEB} provides a relatively simple macro facility and it allows
the program to be written in a series of small easily understood modules.
The net effect is that it is actually easier to write and debug a program
in \.{WEB} than it would be to write the program directly in \PASCAL. The user
of \.{WEB} must, of course, be familiar with both \TEX\ and \PASCAL.
The \.{WEB} system consists of the basic language in which desired computer
programs may be written and two special pre-compiler programs that are used to
process these original source programs. One of these pre-compilers, called
\.{TANGLE}, extracts and rearranges the necessary information to produce a
syntactically correct \PASCAL\ source file that may then be compiled with
the usual \PASCAL\ compiler.
The second pre-compiler, called \.{WEAVE}, takes care of typographic details
having to do with the page layout and the use of indentation, italics,
boldface, etc.,to generate a pleasing document. \.{WEAVE} also supplies extensive
cross-index information that it gathers automatically and it then produces the
necessary source file for use with \TEX\ to obtain the final
hard-copy documentation.
\ \.{WEB} and the November 1981 versions of \.{TANGLE} and \.{WEAVE} are described in a
hard-copy document called ``The \.{WEB} System of Structured Documentation''
by Donald E. Knuth. This document was, of course, written in \.{WEB} and it
demonstrates the way in which this new language can be used.
Although not yet available, the final versions of \.{TANGLE} and \.{WEAVE}
will each accept two input files, one being the usual \.{WEB} input file and
the second being a change file. You will find this dual-input feature
useful when working with a master \.{WEB} file that has been received from
elsewhere (e.g., \.{TANGLE}.\.{WEB} or \.{WEAVE}.\.{WEB} or
\.{TEX}.\.{WEB}). When changes are desirable to customize the program for
your local computer system, these changes may be generated, debugged, and
maintained as a separate file
without altering the master \.{WEB} file. Once the change file has been
prepared, it may be used with new releases of the master \.{WEB} file with
little or no modifications.
\vfill
{\noindent Stanford University}
{\noindent February 25, 1982}
\end